Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
@poppinss/colors
Advanced tools
A wrapper on top of kleur with ability to write test against the color functions
Wrapper over kleur with better support for testing
This package is a wrapper over kleur with additional implementations to make testing easier and work seamlessly with terminals/stdout streams that do not support colors.
Install the package from the npm registry as follows.
npm i @poppinss/colors
And use it as follows. The ansi
method returns an instance of the kleur package.
import useColors from '@poppinss/colors'
const colors = useColors.ansi()
console.log(colors.red('this is an error'))
console.log(colors.cyan('hello world'))
Chaining methods
const colors = useColors.ansi()
console.log(colors.red().bgBlack('this is an error'))
The raw implementation is ideal for testing. Instead of outputting ANSI escape codes, we wrap the string with transformation names. For example:
import useColors from '@poppinss/colors'
const colors = useColors.raw()
console.log(colors.red('hello world'))
// OUTPUT: red(hello world)
console.log(colors.bgBlack().red('hello world'))
// OUTPUT: bgBlack(red(hello world))
As you can notice, the output is a plain text value, so it is easier to write assertions against it.
assert.equal(colors.red('hello world'), 'red(hello world)')
The silent mode does not perform any transformations on the string and returns the value. This is helpful when the output terminal or stdout stream does not support colors.
import useColors from '@poppinss/colors'
const colors = useColors.silent()
console.log(colors.red('hello world'))
// OUTPUT: hello world
console.log(colors.bgBlack().red('hello world'))
// OUTPUT: hello world
Ideally, you will use one of the available implementations based on some runtime environment. For example:
import useColors from '@poppinss/colors'
import supportsColor from 'supports-color'
const isTestEnv = process.env.NODE_ENV === 'test'
const colors = isTestEnv
? useColors.raw() // use raw in test environment
: supportsColor.stdout
? useColors.ansi() // use kleur when stdout has colors
: useColors.silent() // use silent mode
export default colors
FAQs
A wrapper on top of kleur with ability to write test against the color functions
The npm package @poppinss/colors receives a total of 35,833 weekly downloads. As such, @poppinss/colors popularity was classified as popular.
We found that @poppinss/colors demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.